//*****************************************************************************
//
// Copyright, (C) 2000-2005 Quantic Dream SA
//
// These coded instructions, statements and computer programs contain
// unpublished information, proprietary to Quantic Dream SA and are 
// protected by French and EEC copyright laws. They may not be 
// disclosed to third parties or copied or duplicated, in whole or in part, 
// without prior written consent of Quantic Dream SA
//
// Unpublished-rights reserved under the Copyright Laws of the EEC.
//
//*****************************************************************************
//
//	CLASS:	GOURAUD_SHADER
//	The GOURAUD_SHADER class implements ...
//
//	JJA : 2012-07-23 - Created
//*****************************************************************************

//=============================================================================
//	CODE STARTS HERE
//=============================================================================

#ifndef GOURAUD_SHADER_H
#define GOURAUD_SHADER_H

#include "Shader.h"

class	GOURAUD_SHADER: public SHADER
{
public:
					GOURAUD_SHADER();
					~GOURAUD_SHADER();
	
	virtual void	Load( const char* pcVertexShaderPath, const char* pcFragmentShaderPath );

	virtual void	Begin() const;
	virtual void	Apply( MESH_INSTANCE* pMeshInstance, CAMERA* pCamera ) const;
	virtual void	End() const;

private:
	GLuint			_uiModelViewMatrixUniformLocation;
	GLuint			_uiProjectionMatrixUniformLocation;
	GLuint			_uiLightDirInViewSpaceUniformLocation;
};

#endif // GOURAUD_SHADER_H

//=============================================================================
//	CODE ENDS HERE
//=============================================================================
